home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
InfoMagic Standards 1994 January
/
InfoMagic Standards - January 1994.iso
/
iso
/
9660
/
rockrdge
/
new
/
rrip.shr
/
rrip.nr
< prev
next >
Wrap
Text File
|
1993-08-11
|
37KB
|
1,053 lines
.sp
.H 1 "ROCK RIDGE INTERCHANGE PROTOCOL"
.sp
The Rock Ridge Interchange Protocol (RRIP) utilizes System Use Areas
provided by ISO 9660:1988.
The System Use Area of the Directory Record is used to record the POSIX
file system information.
The System Use Sharing Protocol is used for recording information in
each of these areas.
.sp
.H 2 "System Use Fields Provided by this Specification"
.sp
The Rock Ridge Interchange Protocol defines the following fundamental
System Use Fields:
.sp
.TS
center;
l l.
"PX" POSIX file attributes
"PN" POSIX device modes
"SL" Symbolic link
"NM" Alternate name
"CL" Child link
"PL" Parent link
"RE" Relocated directory
"TF" Time stamp(s) for a file
"SF" File data is in sparse file format
.TE
.sp
Additionally, this specification provides required identification information
to be recorded in an "ER" (Extensions Reference) System Use Field for the
purpose of identifying discs on which the Rock Ridge Interchange Protocol
is implemented.
.sp
.H 3 "Description of the PX System Use Field"
.sp
Recording of the "PX" System Use Field in the System Use Area of
each ISO 9660 directory record shall be mandatory.
No more than one
"PX" System Use Field shall appear in (all) the System Use Area(s) for
a single directory record.
.sp
If the file type in a directory record is of type directory, then
the POSIX File Mode Field ([BP 4] in this section) and File Flags (ISO
9660 Format section 9.1.6) should both indicate such, with the
exception of relocated directories, indicated by a "CL" field (section
3.1.5.1), for which the ISO file flags shall indicate a normal file,
but the POSIX File Mode Field shall indicate a directory.
.sp
The format of the "PX" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "PX" type System Use Field.
The bytes in this field shall be (50)(58) ("PX").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "PX" System Use Field.
The number in this field shall be 36 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.bp
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "PX" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 to BP 12 - POSIX File Mode" has the same meaning as the st_mode
defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
This field shall be recorded according to ISO 9660:1988 Format
section 7.3.3.
The valid mask values for this field are combinations of the following:
.sp
.TS
center;
l l l.
Octal Value Mnemonic Meaning
\_ \_ \_
0000400 S_IRUSR read permission (owner)
0000200 S_IWUSR write permission (owner)
0000100 S_IXUSR execute permission (owner)
0000040 S_IRGRP read permission (group)
0000020 S_IWGRP write permission (group)
0000010 S_IXGRP execute permission (group)
0000004 S_IROTH read permission (other)
0000002 S_IWOTH write permission (other)
0000001 S_IXOTH execute permission (other)
0004000 S_ISUID set user ID on execution
0002000 S_ISGID set group ID on execution
0002000 S_ENFMT enforced file locking (shared w/ set group ID)
0001000 S_ISVTX save swapped text even after use
0170000 S_IFMT type of file
0140000 S_IFSOCK socket
0120000 S_IFLNK symbolic link
0100000 S_IFREG regular
0060000 S_IFBLK block special
0020000 S_IFCHR character special
0040000 S_IFDIR directory
0010000 S_IFIFO pipe or FIFO
.TE
.sp
.LI "[5]"
"BP 13 to BP 20 - POSIX File Links" has the same meaning as the
st_nlink defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
If the file type described by the directory record is a
directory, the value in this field shall equal the number of
directories in the directory described by this directory record
(i.e. any directory record which has the "directory" bit set,
including the "." and ".." records).
Otherwise, it shall be 1.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LI "[6]"
"BP 21 to BP 28 - POSIX File User ID" has the same meaning as the
st_uid defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.bp
.LI "[7]"
"BP 29 to BP 36 - POSIX File Group ID" has the same meaning as the
st_gid defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.sp
.sp
.TB "PX System Use Field - Version 1"
.TS
center,box;
c | c | c | c | c | c.
'P' 'X' LENGTH 1 FILE MODE LINKS
(BP1) (BP2) (BP3) (BP4) (BP5 to BP12) (BP13 to BP20)
.TE
.sp
.TS
center,box;
c | c.
USER ID GROUP ID
(BP21 to BP28) (BP29 to BP36)
.TE
.sp
.sp
.sp
.H 3 "Description of the PN System Use Field
.sp
This field is mandatory if the file type recorded in the "PX"
File Mode field for the given directory record indicates a character or block
device.
This field, if present, should be ignored for all other file types.
No more than one "PN" System Use Field shall appear in (all)
the System Use Area(s) for a single directory record.
.sp
If the receiving system records device numbers as 32-bit numbers,
only the "Dev_t Low" field shall be used.
If the receiving system records device numbers as 64-bit numbers,
the "Dev_t High" and "Dev_t Low" fields shall be concatenated to make
one 64-bit number.
.sp
The format of the "PN" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "PN" type System Use Field.
The bytes in this field shall be (50)(4E) ("PN").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "PN" System Use Field.
The number in this field shall be 20 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "PN" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.bp
.LI "[4]"
"BP 5 to BP 12 - Dev_t High" shall contain as a 32-bit number
the high order 32 bits of the device number.
If the receiving system records device numbers as 32-bit numbers this field
shall be zero and ignored.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LI "[5]"
"BP 13 to BP 20 - Dev_t Low" shall contain as a 32-bit number
the low order 32-bits of the device number.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LE
.sp
.sp
.TB "PN System Use Field - Version 1"
.TS
center,box;
c | c | c | c | c | c.
'P' 'N' 20 1 DEV_T HIGH DEV_T LOW
(BP1) (BP2) (BP3) (BP4) (BP5 to BP12) (BP13 to BP20)
.TE
.sp
.sp
.sp
.H 3 "Description of the SL System Use Field"
.sp
The purpose of the "SL" System Use Field is to store the content
of a symbolic link.
This System Use Field is mandatory if the file
type recorded in the "PX" File Mode field for the given directory record
indicates a symbolic link.
For other file types, this System Use Field should be ignored.
If the receiving system does not support symbolic links the system should
invoke "Reader-Makes-Right".
.sp
If the file type recorded in the "PX" File Mode field for the given directory
record indicates a symbolic link, the directory record shall point to a file,
the contents of which are not specified by this document.
.sp
If more than one "SL" System Use Field is recorded in the System
Use Area(s) for a single directory record, the Component Area (see
section 4.1.3.1
below) of each should be concatenated together, in the order in which
they were recorded, until a CONTINUE flag with value zero is
encountered (see [4] below), to obtain the entire set of Component
Records for the symbolic link.
.sp
The method of recording is system independent.
Under reader makes right, the receiving system is responsible for supplying
appropriate values and/or notations for the component delimiter and
special cases provided for below.
.sp
.bp
The format of the "SL" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "SL" type System Use Field.
The bytes in this field shall be (53)(4C) ("SL").
.LI "[2]"
"BP 3 - Length (LEN_SL)" shall specify as an 8-bit number the length in
bytes of the "SL" System Use Field.
The number in this field shall be 5 plus the length of the Component
Area recorded in this "SL" field.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "SL" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 - Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
center;
c c l.
Position Name Interpretation if set to 1
\_ \_ \_
0 CONTINUE This Symbolic Link continues in next "SL"
all others RESERVED value must be 0
.TE
.sp
.LI "[5]"
"BP 6 to LEN_SL - Component Records" shall contain Component Records
(described below).
.LE
.sp
.sp
.TB "SL System Use Field - Version 1"
.TS
center,box;
c | c | c | c | c | c.
'S' 'L' LENGTH 1 FLAGS COMPONENT RECORDS
(BP1) (BP2) (BP3) (BP4) (BP5) (BP6 to LEN_SL)
.TE
.sp
.sp
.sp
.H 4 "Description of the SL System Use Field Component Record"
.sp
Within a "SL" System Use Field, each component of the pathname shall
be recorded as one or more component records.
A component does not contain the component separator (/ in POSIX).
Recording a single component of a symbolic
link may require multiple Component Records.
If the component is greater than 255 bytes or will not fit into the current
System Use Area or Continuation Area more than one Component Record will be
recorded for the component.
Multiple Component Records, specifying one or more separate components
of the symbolic link may be recorded in the Component Area of a
single "SL" field.
.sp
If a single Component Record is used to record a single component of a
symbolic link, the CONTINUE flag must be set to zero.
If multiple Component Records are used to record a single
component of a symbolic link, the CONTINUE flag must be set to one in
each Component Record except the last and zero in the last Component
Record recording the given component.
.sp
Component Records shall be recorded contiguously within each
Component Area, starting in the first byte of each Component Area.
The last Component Record in the Component Area of an "SL" field may
be continued in the Component Area of the next recorded "SL" field.
.sp
Each Component Record shall have the following format:
.sp
.VL 10 5
.LI "[A]"
"BP 1 - Component Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
center;
c c l.
Position Name Interpretation if set to 1
\_ \_ \_
0 CONTINUE Component recorded in this "SL" continues
in next "SL" Component Record
1 CURRENT Component refers to the current directory
(. in POSIX)
2 PARENT Component refers to the parent of the
current directory (.. in POSIX)
3 ROOT Component refers to the root of the current
directory tree for this process (/ in POSIX)
4 VOLROOT Component refers to the directory the
current CD-ROM volume is mounted on
5 HOST The local host name should be inserted as
the value of the current component
all others RESERVED value must be 0
.TE
.sp
Bits 1 - 7 are mutually exclusive.
.sp
.LI "[B]"
"BP 2 - Component Length (LEN_CP)" shall specify as an 8-bit number the
length in bytes of the (portion of) the component recorded in the
current Component Record.
This length shall not include the Component Record Flags byte or Length byte.
If any of the
2\s-1\u1\d\s0 thru 2\s-1\u5\d\s0
bits are set, the value of this field shall be zero.
This field shall be recorded according to ISO 9660:1988 Format section 7.1.1.
.sp
.LI "[C]"
"BP 3 to 2 + LEN_CP - Component" shall contain (the portion of) the component
recorded in the current Component Record.
The content of this field shall be recorded according to section 3.2 above.
.LE
.sp
.sp
.TB "SL System Use Field - Component Record"
.TS
center,box;
c | c | c.
COMP_FLAGS COMP_LEN COMPONENT
(BP1) (BP2) (BP3 to 2+LEN_CP)
.TE
.sp
.sp
.bp
.sp
.H 3 "Description of the NM System Use Field"
.sp
The purpose of the "NM" System Use Field is to store the content
of an Alternate Name to support POSIX-style or other names.
This System Use Field is optional.
If no "NM" field(s) are recorded for a
specific directory record, the ISO 9660 file identifier shall be used.
.sp
If more than one "NM" System Use Field appears in (all) the
System Use Area(s) for a single directory record, the contents ([5]
below) of each should be concatenated together, in the order in which
they were recorded, until a CONTINUE flag with value zero is
encountered (see [4] below), to obtain the entire Alternate Name.
.sp
"NM" System Use Fields recorded for the ISO 9660 directory
records with names (00) and (01), used to designate the current and
parent directories, respectively, should be ignored.
Instead, the receiving system should convert these names to the appropriate
receiving system-dependent designations for the current and parent
directories.
.sp
No sorting of the directory records by Alternate Names is
specified by the RRIP, nor can one necessarily be imposed by
originating systems or assumed by receiving systems.
The ISO 9660 specifies a sorting order based upon the ISO 9660 file
identifier (see ISO 9660:1988, section 9.3).
.sp
The format of the "NM" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "NM" type System Use Field.
The bytes in this field shall be (4E)(4D) ("NM").
.LI "[2]"
"BP 3 - Length (LEN_NAM)" shall specify as an 8-bit number the length in
bytes of the "NM" System Use Field.
The number in this field shall be 5 plus the length (of the portion)
of the Alternate Name recorded in this "NM" field.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "NM" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.bp
.LI "[4]"
"BP 5 - Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
center;
c c l.
Position Name Interpretation if set to 1
\_ \_ \_
0 CONTINUE Alternate Name continues in next "NM"
field
1 CURRENT Alternate Name refers to the current
directory (. in POSIX)
2 PARENT Alternate Name refers to the parent of
the current directory (.. in POSIX)
3 RESERVED value must be 0
4 RESERVED value must be 0
of the current CD-ROM volume
5 HOST The local host name should be inserted as
the value of the Alternate Name
all others RESERVED value must be 0
.TE
.sp
Bits 1 - 7 are mutually exclusive.
.sp
.LI "[5]"
"BP 6 to LEN_NAM - Alternate Name" shall contain (a portion of) the
content of the Alternate Name.
The content of this field shall be recorded according to section 3.2 above.
.LE
.sp
.sp
.TB "NM System Use Field - Version 1"
.TS
center,box;
c | c | c | c | c | c.
'N' 'M' LENGTH 1 FLAGS ALTERNATE NAME
(BP1) (BP2) (BP3) (BP4) (BP5) (BP6 to LEN_NAM)
.TE
.sp
.sp
.sp
.H 3 "System Use Fields for Handling Deep Directory Trees"
.sp
The ISO 9660:1988 mandates directory depths of no more than eight levels.
Deeper directories must be reorganized to be recorded under the ISO 9660.
The RRIP includes definitions of three System Use
Fields to support logical reconstruction of deep directory trees while
retaining complete ISO 9660 compliance.
.sp
For each specific directory, either all three of the following
fields must be appropriately recorded, or none shall be recorded.
.sp
Table 9 and Table 10 at the end of this section have graphical examples
of Deep Directory Trees.
.bp
.H 4 "Description of the CL System Use Field"
.sp
The purpose of the "CL" System Use Field is to record the new
location of a directory which has been relocated.
The field contains the Logical Block number of the Logical Sector in which
the first directory record of the moved Directory is stored.
.sp
The "CL" System Use Field is optional.
If recorded, a "CL" System Use Field shall be recorded in the System Use
Area of a ISO 9660 directory record which describes a file which has the
same name as, and occupies the original position in the ISO 9660 directory tree
of, the moved Directory.
No more than one "CL" System Use Field shall appear in (all) the System Use
Area(s) for a single directory record.
.sp
Except for the ISO 9660 name, the Alternate Name (recorded in an
"NM" System Use Field), and the new location of the Directory, all
other information stored in the directory for this file should
be ignored.
The contents of this file are not specified by this document.
All attributes of the moved Directory shall be recorded in the first directory
record ("dot" entry) of the moved Directory in its new location.
.sp
The format of the "CL" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "CL" type System Use Field.
The bytes in this field shall be (43)(4C) ("CL").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "CL" System Use Field.
The number in this field shall be 12 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "CL" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 to BP 12 - Location of Child Directory" shall specify as a
32-bit number the Logical Block Number of the first Logical Block
allocated to the moved directory.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LE
.sp
.sp
.TB "CL System Use Field - Version 1"
.TS
center,box;
c | c | c | c | c.
'C' 'L' 12 1 LOC of CHILD DIRECTORY
(BP1) (BP2) (BP3) (BP4) (BP5 to BP12)
.TE
.sp
.sp
.bp
.sp
.H 4 "Description of the PL System Use Field"
.sp
The purpose of the "PL" System Use Field is to record the
location of the original parent Directory of a Directory which has
been relocated.
The field contains the Logical Block number of the
Logical Sector in which the first directory record of the original
parent Directory of said moved Directory is stored.
.sp
For each moved Directory which is recorded using a "CL" System
Use Field, a corresponding "PL" System Use Field is required.
The "PL" System Use Field shall be recorded in the System Use Area of the
second directory record ("dot-dot" entry) of the moved Directory.
No more than one "PL" System Use Field shall appear in (all) the System
Use Area(s) for a single directory record.
.sp
The format of the "PL" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "PL" type System Use Field.
The bytes in this field shall be (50)(4C) ("PL").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "PL" System Use Field.
The number in this field shall be 12 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "PL" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 to BP 12 - Location of Parent Directory" shall specify as a
32-bit number the Logical Block Number of the first Logical Block
allocated to the original parent directory of the moved directory.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LE
.sp
.sp
.TB "PL System Use Field - Version 1"
.TS
center,box;
c | c | c | c | c.
'P' 'L' 12 1 LOC of PARENT DIRECTORY
(BP1) (BP2) (BP3) (BP4) (BP5 to BP12)
.TE
.sp
.sp
.bp
.sp
.H 4 "Description of the RE System Use Field"
.sp
The purpose of the "RE" System Use Field is to indicate to a
receiving system which can understand the System Use Fields "CL" and
"PL" that the directory record in which this "RE" System Use Field is
recorded has been relocated from another position in the original
directory tree.
.sp
An "RE" System Use Field shall not be recorded unless a corresponding
"CL" System Use Field is recorded.
If recorded, a "RE" System Use Field shall be recorded in
the System Use Area of the directory record which describes the moved
Directory in the new parent directory of the moved Directory.
.sp
The format of the "RE" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "RE" type System Use Field.
The bytes in this field shall be (52)(45) ("RE").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "RE" System Use Field.
The number in this field shall be 4 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "RE" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LE
.sp
.sp
.TB "RE System Use Field - Version 1"
.TS
center,box;
c | c | c | c.
'R' 'E' 4 1
(BP1) (BP2) (BP3) (BP4)
.TE
.sp
.sp
.bp
.sp
.TB "Deep Directory Relocation"
.sp
.sp
.PS
.ft 3
arrowhead = 7
box "1"
circle invis "(root)"
box "2a" at 1st box + (-2.5, -1.0)
box "2b" at 1st box + (-1.5, -1.0)
box "2c" at 1st box + (-.50, -1.0)
line from bottom of 1st box to top of 2nd box
line from bottom of 1st box to top of 3rd box
line from bottom of 1st box to top of 4th box
box "3" at 4th box + (-.50, -1.0)
line from bottom of 4th box to top of 5th box
box "4" at 5th box + (-.50, -1.0)
box "8" at 5th box + (1.50, -1.0)
circle "\"RE\"" invis
line from bottom of 5th box to top of 6th box
line from bottom of 5th box to top of 7th box
line from bottom of 7th box down .4 left .5
line from bottom of 7th box down .4 right .5
box "5" at 6th box + (-.50, -1.0)
line from bottom of 6th box to top of 8th box
box "6" at 8th box + (-.50, -1.0)
line from bottom of 8th box to top of 9th box
box "7" at 9th box + (-.50, -1.0)
line from bottom of 9th box to top of 10th box
ellipse "file" at 10th box + (-.50, -1.0)
line from bottom of 10th box to top of 1st ellipse
arc -> from 1st ellipse + (.40, 0.0) to 7th box + (.20, -.55)
arc -> cw from 7th box + (-.20, -.55) to 10th box + (.40, 0.0) rad 3
circle invis "\"PL\"" at 8th box + (1.35, -1.0)
circle invis "\"CL\"" at 8th box + (2.55, -1.0)
.ft 1
.PE
.bp
.TB "Detailed Deep Directory Relocation"
.sp
.sp
.PS
.ft 3
move right 1.0
A: box invis ht 0.2 wid 2.25 ; " directory foo/ " at A.w ljust
Aa: box ht 0.2 wid 1.5 with .nw at A.sw ; " \"dot\"" at Aa.w ljust
Ab: box ht 0.2 wid .75 with .sw at Aa.se ; " rrip..." at Ab.w ljust
Ac: box ht 0.2 wid 1.5 with .nw at Aa.sw ; " \"dotdot\"" at Ac.w ljust
Ad: box ht 0.2 wid .75 with .sw at Ac.se ; " rrip..." at Ad.w ljust
B: box ht 0.2 wid 1.5 with .nw at Ac.sw ; " bar" at B.w ljust
C: box ht 0.2 wid .75 with .sw at B.se ; " rrip..." at C.w ljust
F: box ht 0.2 wid 1.5 with .nw at B.sw ; " hidden_baz" at F.w ljust
G: box ht 0.2 wid .75 with .sw at F.se ; " RE" at G.w ljust
H: box ht 0.2 wid 1.5 with .nw at F.sw ; " lower" at H.w ljust
U: box ht 0.2 wid .75 with .sw at H.se ; " rrip..." at U.w ljust
move down .4
move right 2.0
Y: box invis ht .2 wid .75 ; " " at Y.w ljust
X: ellipse ht .4 wid .75 with .nw at Y.sw "File"
move down .75
move left 1.5
I: box invis ht 0.2 wid 1.5 ; " directory lower/" at I.w ljust
J: box ht 0.4 wid 2.55 with .nw at I.sw ; " " at J.w ljust
K: box ht 0.2 wid .85 with .nw at J.sw ; " empty_baz" at K.w ljust
L: box ht 0.2 wid .85 with .sw at K.se ; " NM \"baz\"" at L.w ljust
M: box ht 0.2 wid .85 with .sw at L.se ; " CL" at M.w ljust
move down .75
move left .25
Z: ellipse ht .4 wid .75 " File"
move down .75
N: box invis ht 0.2 wid 2.0 ; " directory baz/ " at N.w ljust
O: box ht 0.2 wid 1.0 with .nw at N.sw ; " \"dot\"" at O.w ljust
P: box ht 0.2 wid 1.0 with .sw at O.se ; " rrip..." at P.w ljust
Q: box ht 0.2 wid 1.0 with .nw at O.sw ; " \"dotdot\"" at Q.w ljust
R: box ht 0.2 wid 1.0 with .sw at Q.se ; " PL" at R.w ljust
S: box ht 0.2 wid 1.0 with .nw at Q.sw ; " " at S.w ljust
T: box ht 0.2 wid 1.0 with .sw at S.se ; " " at T.w ljust
.\" BAR->FILE
arc <- from X.n to C.e rad 2.0
.\" HIDDEN_BAZ->DIR_BAZ
arc -> from F.w to O.w
.\" LOWER->DIR_LOWER
arc -> cw from H.c to J.n rad 3
.\" EMPTY_BAZX->EMPTY_FILE
arc -> from K.s to Z.nw rad 3
.\" CL->DIR_BAZ
arc -> cw from M.c to P.n rad 2
.\" PL->DIR_LOWER
arc -> from R.c to J.ne rad .05
.ft 1
.PE
.bp
.sp
.sp
.H 3 "Description of the TF System Use Field"
.sp
The purpose of the "TF" System Use Field is to allow the
recording of a complete set of time stamps related to a file.
This System Use Field shall be optional.
If this field does not exist, the
POSIX st_atime, st_ctime and st_mtime should have the same value as
Recording Date and Time Field of the ISO 9660:1988 directory record.
If both the "TF" System Use Field and the XAR are present, the time
attributes stored in these two areas must be consistent.
If only the XAR is present, the st_atime should have the same value as the
Recording Date and Time Field of the ISO 9660 directory record.
.sp
Multiple "TF" fields may be recorded, using any combination of time
stamps and time formats, but each individual time stamp may be recorded
only once per directory record.
.sp
The format of the "TF" System Use Field is as follows:
.sp
.VL 12 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "TF" type System Use Field.
The bytes in this field shall be (54)(46) ("TF").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "TF" System Use Field.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "TF" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 - Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
center;
c c l.
Position Name Interpretation if set to 1
\_ \_ \_
0 CREATION Creation time recorded
1 MODIFY Modification time recorded
2 ACCESS Last Access time recorded
3 ATTRIBUTES Last Attribute Change time recorded
4 BACKUP Last Backup time recorded
5 EXPIRATION Expiration time recorded
6 EFFECTIVE Effective time recorded
7 LONG_FORM ISO 9660 17-byte time format used
.TE
.sp
If the LONG_FORM bit is set to one, all time stamps in this "TF"
System Use Field shall be recorded using the format specified in
Section 8.4.26.1 of ISO 9660:1988.
If the LONG_FORM bit is set to zero, all time stamps in this "TF"
System Use Field shall be recorded
using the format specified in Section 9.1.5 of ISO 9660:1988.
.LI "[4+N]"
"BP 6+(X*(N-1)) to 5+(X*N) Time Stamp" shall contain the Nth time
stamp indicated in [4] as being recorded, starting with the 0th
bit and working sequentially through the list of recordable time stamps.
The LONG_FORM bit does not indicate the presence or
absence of any time stamp.
The value of X in the expression above
shall be 17 if the LONG_FORM bit is set to 1, and 7 otherwise.
.LE
.bp
.sp
The recorded time for each of the time stamps recorded in this
field shall be local time.
if recorded, CREATION, Creation Time, has the same meaning as in
ISO 9660:1988 Format section 9.5.4.
.sp
If recorded, MODIFY, File Modification Date and Time, has the
same meaning as in ISO 9660:1988 Format section 9.5.5.
This field shall be used by the st_mtime for POSIX conformance.
.sp
If recorded, ACCESS, File Last Access Date and Time, shall
specify the date and time of the day at which the information in the
file was last accessed.
This field shall be used by the st_atime for POSIX conformance.
.sp
If recorded, ATTRIBUTES, Last Attribute Change Time,
shall be used by the st_ctime field for POSIX conformance.
.sp
If recorded, BACKUP, Last Backup Time, shall provide a time stamp
for the most recent backup of this file.
The utilization of this information is not restricted by this specification.
.sp
If recorded, EXPIRE, File Expiration Date and Time, has the same
meaning as in ISO 9660:1988 Format section 9.5.6.
.sp
If recorded, EFFECT File Effective Date and Time" has the same
meaning as in ISO 9660:1988 Format section 9.5.7.
.sp
.sp
.TB "TF System Use Field - Version 1"
.TS
center,box;
c | c | c | c | c | c.
'T' 'F' LENGTH 1 FLAGS TIME STAMPS
(BP1) (BP2) (BP3) (BP4) (BP5) (BP6 to LENGTH)
.TE
.sp
.sp
.sp
.H 3 "Description of the SF System Use Field"
.sp
The purpose of the "SF" System Use Field is to indicate that the
file identified by the current directory record is stored as a "sparse"
file, and to provide additional information which is necessary to
retrieve the file contents.
This System Use Field (and sparse file encoding) is optional.
No more than one "SF" System Use Field shall
appear in (all) the System Use Area(s) for a single directory record.
.sp
The "SF" field is specifically designed to provide support for the
encoding and delivery of Unix-style sparse files in a platform-independent
manner. The sparse file encoding allocates physical blocks only if the
block actually contains non-zero data.
.bp
.sp
The format of the "SF" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "SF" type System Use Field.
The bytes in this field shall be (53)(46) ("SF").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "SF" System Use Field.
The number in this field shall be 12 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "SF" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 to BP 12 - Virtual File Size" shall specify as a 32-bit
number the apparent size of the recorded data file, i.e. the size of the
file as reported on the originating (Unix) file system, or the offset
from the beginning of the file to the last application-addressable byte
in the file. This field shall be recorded according to the ISO
9660:1988 Format section 7.3.3.
.LE
.sp
.sp
.TB "SF System Use Field - Version 1"
.TS
center,box;
c | c | c | c | c.
'S' 'F' LENGTH 1 VIRTUAL FILE SIZE
(BP1) (BP2) (BP3) (BP4) (BP5 to BP12)
.TE
.sp
.H 4 "Encoding and Recording of Sparse Files"
.sp
Sparse Files are encoded within the File Section as specified in section
6.4.4.2 of the ISO 9660:1988. The directory record Data Length as specified
in section 9.1.4 of the ISO 9660:1988 shall specify the length of the file
section, including the SF Header Block, all Index Blocks, and the sparse file
data.
.sp
The initial (number 0) 2K byte block of the File Section shall be an
SF Header Block.
.sp
The format of the SF Header Block is identical to the format of the
SF System Use Field. All unused bytes in the SF header block shall be
set to binary zero (0).
.sp
The second (number 1) 2K byte block of the File Section shall be the
first Index Block.
Each Index Block of an the encoded file shall hold 256 table entries.
.sp
Each Table Entry of an Index Block shall be eight bytes, recording
a 32 bit number as specified in section 7.3.3 of the ISO 9660:1988.
The value of each Table Entry is interpreted as a set of bit fields
numbered 0 to 31 starting with the least significant bit as follows:
.TS
center;
c c l.
Bits Name Interpretation if set to 1
\_ \_ \_
0-23 BLOCK 24 bit logical block number.
If the TABLE bit is set, this number is the 2K byte block
offset from the first block of the File Section to
the next block of table entries.
If the TABLE bit is not set, this number is the 256 byte
block offset from the first block of the File Section
to the first block of data referenced by this
Table Entry.
If the ZERO bit is set, this block number must be zero.
24-29 RESERVED value must be 0.
30 TABLE This Table Entry's BLOCK pointer references a 2K block of
256 Table Entries.
31 ZERO This Table Entry specifies a file extent of data containing
only zeros.
.TE
The TABLE and ZERO bits are mutually exclusive.
.sp
Each Table Entry of the first Index Block corresponds to the high-order
byte of a 32 bit, linearly addressed file position.
Any Table Entry in the first Index Block which has the TABLE bit set, has
a block pointer which refers to a logical 2K block (relative to the
File Section) containing a second tier Index Block. Any Table Entry
with the ZERO bit set represents a logical file region of 16M bytes of zeros.
If the TABLE bit and the ZERO bit are both zero, then the BLOCK field of the
Table Entry is a pointer
to the first logical block of a contiguous 16M byte region of data.
.sp
Each Table Entry of a second tier Index Block corresponds to the second
most significant byte of a 32 bit, linearly addressed file position.
Any Table Entry in a second tier Index Block which
has the TABLE bit set, has a block pointer which refers to a logical
2K block (relative to the File Section) containing a third tier Index
Block. Any Table Entry with the ZERO bit set represents a logical file region
of 64K bytes of zeros.
If the TABLE bit and the ZERO bit are both zero, then the BLOCK field of the
Table Entry is a pointer
to the first logical block of a contiguous 64K byte region of data.
.sp
Each Table Entry of a third tier Index Block corresponds to the third
most significant byte of a 32 bit, linearly addressed file position.
The block pointer refers to a logical
256 byte block (relative to the File Section) which contains 256 bytes
of actual data. A Table Entry with the ZERO bit set represents a logical
file region of 256 bytes of zeros. No Table Entry in a third tier Index Block
may have the TABLE bit set.
If the TABLE bit and the ZERO bit are both zero, then the BLOCK field of the
Table Entry is a pointer
to the first logical block of a contiguous 256 byte region of data.
.sp
The positions of these 256 byte data blocks shall be numbered
with data block number 0 being coincident with the first 256 bytes of
block 0 of the encoded file. Thus the first 2K byte block of the file,
which actually holds the high-order byte addressing table, would consume
data block positions 0 to 3, and data block 495 (= 123*4 + 3) would be
bytes 768 to 1023 located in the 123rd physical 2K byte block of the
encoded file. Though the data may be efficiently recorded in
sequentially numbered blocks, ordered according to increasing address of
the recorded data, this is not required.
.sp
The second and third tier index blocks (if needed) may be recorded
in sequentially numbered blocks, after the first index block, but before the
first data block, although this is not required.
.sp
.sp
.sp
.H 2 "Required Recording and Consistency"
.sp
The "PX" System Use Fields shall be recorded in every directory
record.
All recorded instances of the "PX" and "TF" System Use Fields
in directory records referring to a single directory must be
consistent.
.bp
.sp
.H 2 "Specification of the ER System Use Field Values for RRIP"
.sp
The Extension Version number for the version of the RRIP defined
herein shall be 1.
The content of the Extension Identifier field shall be "RRIP_1991A".
The Identifier Length shall be 10.
.sp
The recommended content of the Extension Descriptor shall be "THE
ROCK RIDGE INTERCHANGE PROTOCOL PROVIDES SUPPORT FOR POSIX FILE SYSTEM
SEMANTICS."
The corresponding Description Length is 84.
.sp
The recommended content of the Extension Source shall be "PLEASE
CONTACT DISC PUBLISHER FOR SPECIFICATION SOURCE. SEE PUBLISHER
IDENTIFIER IN PRIMARY VOLUME DESCRIPTOR FOR CONTACT INFORMATION."
The corresponding Source Length is 135.
.sp
.bp
.\" Blank page for back of this chapter
.ce